<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background: red;
        }
    </style>
</head>

<body>
    <div class="box"></div>
    <script>
        // 事件绑定、事件监听；
        var boxEle = document.querySelector(".box");

        // 绑定方式一：相同的事件 会被后面的覆盖掉；
        // boxEle.onclick = function () {
        //     console.log("点击了111");
        // }

        // boxEle.onclick = function () {
        //     console.log("点击了222");
        // }

        /* 
            var boxEle = {
                onclick:function(){

                }
            }
            boxEle.onclick = function(){
                console.log("点击了");
            }
        */

        // 绑定事件方式二；addEventListener(事件类型,事件函数) 添加事件监听，绑定事件
        // 源于 设计模式里的 观察者模式；
        //1.绑定事件可以绑定多个 ，不会覆盖 ；一对多的关系；
        // 2.先注册 先执行
        // boxEle.addEventListener("click",function(){  //绑定事件函数 ，注册事件函数
        //     console.log("点击了111");
        // });
        // boxEle.addEventListener("click",function(){
        //     console.log("点击了2222");
        // });

        // boxEle.addEventListener("click",function(){
        //     console.log("点击了3333");
        // });


        // addEventListener存在兼容问题；如果是ie8或者以下 需要用attachEvent来绑定事件；
        // 注意 ：attachEvent 先注册 后执行；
        // boxEle.attachEvent("onclick",function(){
        //     console.log("点击了1111");
        // })
        // boxEle.attachEvent("onclick",function(){
        //     console.log("点击了2222");
        // })
        // boxEle.attachEvent("onclick",function(){
        //     console.log("点击了3333");
        // })
            // console.log(window.addEventListener)

        // 兼容性的函数；
        function bindEvent(ele,eventName,fn){
            // 判断浏览器是否支持 addEventListener方法 
            if(window.addEventListener){
                // 有addEventListener 是chrome浏览器
                ele.addEventListener(eventName,fn);
            }else{
                // ie8或者以下；
                ele.attachEvent("on"+eventName,fn);
            }
        }
        bindEvent(boxEle,"mousedown",function(){
            console.log("鼠标按下了");
        })

        // 总结： 1.和赋值式绑定事件的区别 赋值式只能绑定一个事件  
        // 2. 事件监听可以绑定多个 兼容性 addEventListener 和 attachEvnet  ：执行顺序 可以绑定多个事件

    </script>
</body>

</html>